Capturing and Replaying Refactorings to Support API Evolution

نویسندگان

  • Johannes Henkel
  • Amer Diwan
چکیده

Library developers who have to evolve a library to accommodate changing requirements often face a dilemma: Either they implement a clean, efficient solution but risk breaking client code, or they maintain compatibility with client code, but pay with increased design complexity and thus higher maintenance costs over time. We address this dilemma by presenting a lightweight approach for evolving application programming interfaces (APIs), which does not depend on version control or configuration management systems. Instead, we capture API refactoring actions as a developer evolves an API. Users of the API can then replay the refactorings to bring their client software components up to date. We present CatchUp!, an implementation of our approach that captures and replays refactoring actions within an integrated development environment semi-automatically. Our experiments suggest that our approach could be valuable in practice.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Automated Upgrading of Component - Based Applications

Software developers like to reuse software components such as libraries or frameworks because it lets them build a system more quickly, but then the system depends on the components that they reused. Ideally, the programming interface (API) to a component never changes. In practice, components change their APIs. Upgrading an application to the new API is error-prone, tedious, and disruptive to ...

متن کامل

Refactoring-Aware Version Control Towards Refactoring Support in API Evolution and Team Development

Today, refactorings are supported in some integrated development environments (IDEs). The refactoring operations can only work correctly if all source code that needs to be changed is available to the IDE. However, this precondition neither holds for application programming interface (API) evolution, nor in team development. The research presented in this paper aims to support refactoring in AP...

متن کامل

A refactoring based approach to support binary backward compatible framework upgrades

A successful software framework—a software component encompassing reusable design decisions for a family of related applications—usually has to evolve considerably due to new or changed requirements, or quality improvements. Although the Application Programming Interface (API) of a framework should stay stable, in practice it often changes during framework evolution. When upgrading the framewor...

متن کامل

Framework Evolution Tool

Framework development is very expensive, not only because of the intrinsic difficulty related to capturing the domain knowledge, but also because of the lack of appropriate methods and techniques to support the evolution of the framework architecture. Extension rules in combination with the refactoring approach can be used to support framework evolution, assuring consistency with the previously...

متن کامل

A User-extensible Refactoring Tool for Erlang Programs

Refactoring is the process of changing the design of a program without changing what it does. While it is possible to refactor a program by hand, tool support is considered invaluable as it allows largescale refactorings to be performed easily. However, most refactoring tools are black boxes, supporting a fixed set of ‘core’ refactorings. This paper reports the framework built into Wrangler – a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005